package com.shujia.sql

import org.apache.spark.sql.{DataFrame, SparkSession}

object Code05ParSource {
  def main(args: Array[String]): Unit = {
    val spark: SparkSession = GetSpark.spark("orc")
        val dataFrame: DataFrame = spark
          .read
          .format("csv")
          .option("sep", ",")
          // 1500100001,施笑槐,22,女,文科六班
          .schema("id String,name String,age int,gender String,clazz String")
          .load("spark_code/data/students.txt")


        // 将DateFrame保存成parquet
//        dataFrame.write.parquet("spark_code/data/parquet")
//        dataFrame.write.format("parquet").save("spark_code/data/parquet2")


    // orc中保存了当前数据的schema信息
//        spark
//          .read
//          .parquet("spark_code/data/parquet2")
//          .show(10)
//
//        spark.read.format("parquet").load("spark_code/data/parquet2").show(10)

    // 由于roc中保存了Schema信息，那么schema函数中如果给定具体的元信息，那么可以取出其中的部分列
    spark.read.format("orc")
      .schema("id String")
      .load("spark_code/data/orc2").show(10)
  }
}
